<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class User extends MY_Controller {

	/**
	 * Index Page for this controller.
	 *
	 * Maps to the following URL
	 * 		http://example.com/index.php/welcome
	 *	- or -  
	 * 		http://example.com/index.php/welcome/index
	 *	- or -
	 * Since this controller is set as the default controller in 
	 * config/routes.php, it's displayed at http://example.com/
	 *
	 * So any other public methods not prefixed with an underscore will
	 * map to /index.php/welcome/<method_name>
	 * @see http://codeigniter.com/user_guide/general/urls.html
	 */
	public function index()
	{
	   $data['subview'] = "content";
		$this->load->view('layouts/default',$data);
	}



    function _hizlialsat_ajax($value)
    {
         $sql = "SELECT products.name, products.model,product_id FROM products
               
               
               WHERE
              
              
              
               (products.name LIKE ? OR products.model LIKE ?  )
               
               ";
               if($this->db->query($sql,array('%'.$value.'%','%'.$value.'%'))->num_rows()>0)
               {
                 
                 foreach( $this->db->query($sql,array('%'.$value.'%','%'.$value.'%'))->result() as $product)
                 {
                    $data['label'] = $product->name." ".$product->model;
                    $data['value'] = $product->name." ".$product->model."/".$product->product_id;
                    $data_set[] = $data;
                 }    
               }
           
         //  return $this->db->query($sql,array('%'.$value.'%','%'.$value.'%'))->result_array();
       // $query = $this->search_model->get_ajax_products($value);
        return json_encode ($data_set);
    }
    function ajax_hizlialsat()
    {
        echo $this->_hizlialsat_ajax($this->input->get('term'));
    }
    public function hizlialsat()
    {
        $this->load->view('hizlialsat');
    }
    function komisyon_hesapla()
    {
        $adet = $this->input->get('adet');
        $fiyat = $this->input->get('fiyat');
        $total = $adet * $fiyat * (1- KOMISYON);
        $komisyon_tutari  = $adet * $fiyat * (KOMISYON);
        $response = "<p>Toplam Kazancınız: $total TL <br>
                    Komisyon Miktarı: $komisyon_tutari TL
           </p>";
        echo $response;
        
    }
    function get_ilce()
    {
        $il_id = $this->input->get('il_id');
      /*  foreach($this->db->where('il_id',$il_id)->get('ilce')->result() as $ilce)
        {
            $options['value'] = $ilce->ilce_id;
            $options['label'] = $ilce->ilce_adi;
            $response[] = $options;
        }*/
        echo json_encode($this->db->where('il_id',$il_id)->get('ilce')->result_array());
    }
    public function slider()
    {
          $this->load->view('slider');
    }
    function popularbrand()
    {
        $this->load->view('popularbrand');
        
    }
    public function login()
    {
                
        $this->form_validation->set_rules('email', 'Email', 'required|xss_clean');
        $this->form_validation->set_rules('password', 'Password', 'required|xss_clean|min_length[5]');
        
  		if ($this->form_validation->run() == FALSE)
		{
		   	   $data['subview'] = "user/login";
	         $this->load->view('layouts/default',$data);
		}
		else
		{
             // Get User Paramaters
		     $email = $this->input->post('email');
             $password = $this->input->post('password'); 
             
             // Use the User model
			 
             
             $user_id = $this->user_model->check_login($email,$password);
             
            
             if(!$user_id)
             {
               
                $this->session->set_flashdata('errormsg', "Kullanıcı adı veya şifre hatalı girildi.");
                redirect('user/login');
             }
             else 
             {
                $user_info = $this->user_model->get_user_details($user_id); 
                if((int)$user_info->row(0)->status === PASSIVE)
                {
                     $this->session->set_flashdata('alertmsg', "Hesabınız aktif edilmemiştir lütfen size gönderilen email ile aktifleştirin.");
                     redirect('user/login');
                }
                else
                {
                    if($this->db->where(array('cisession'=>$this->session->userdata['session_id'],'status' => 1))->get('cart')->num_rows()>0)
                    {
                        $cart_id = $this->db->where(array('cisession'=>$this->session->userdata['session_id'],'status' => 1))->get('cart')->row(0)->cart_id;
                        $this->db->where('cart_id',$cart_id);
                        $this->db->update('cart',array('customer_id'=>$user_info->row(0)->user_id));
                    }
                    
                	$this->session->set_userdata(array(
    								'logged_in' =>  true, 
    								'user_id'   =>  $user_info->row(0)->user_id,
                                    'email'     =>  $user_info->row(0)->email,
                                    'type'      =>  $user_info->row(0)->type,
                                    'username'  =>  $user_info->row(0)->username
    								));
                    if($this->input->post('benihatirla'))
                    {
                        // cooki olustur
                    }
    
    				redirect('user/profile');                    
                    
                }            				

                
             }
		}        

    }
   	public function logout()
	{
		$this->session->sess_destroy();
		
		redirect('main/index');
	} 
    public function register()
    {
      
         
        $this->form_validation->set_rules('email', 'Email', 'required|valid_email|xss_clean|callback_check_email');
        $this->form_validation->set_rules('username', 'Rumuz', 'required|xss_clean|max_length[9]|callback_check_username');
        $this->form_validation->set_rules('password', 'Şifre', 'required|xss_clean|matches[passconf]|min_length[5]');
        $this->form_validation->set_rules('passconf', 'Şifre tekrarı', 'required|xss_clean|min_length[5]');
        $this->form_validation->set_rules('name', 'İsim', 'required|xss_clean');
        $this->form_validation->set_rules('surname', 'Soyisim', 'required|xss_clean');
        
        
  		if ($this->form_validation->run() == FALSE)
		{
            $data['subview'] = 'user/view_register';
            $this->load->view('layouts/default',$data);
		}
        else
        {
            
            $email      =   $this->input->post('email');
            $password   =   $this->input->post('password');
            $name       =   $this->input->post('name');
            $surname    =   $this->input->post('surname'); 
            $username   =   $this->input->post('username');  
            $activation_code = random_string('alnum',30);
          
            if($this->user_model->register_user($email,$username,$password,$name,$surname,$activation_code))
            {
                // Register successful
                  $this->load->library('smtp');
                    $this->load->library('phpmailer');
                    
                    
                            
                                
            $mail = new Phpmailer();
            $mail->IsSMTP();
            $mail->SMTPAuth = true;
            $mail->Priority = 1;
            $mail->CharSet    = "utf-8";
            $mail->SMTPDebug  = 1;    
            $mail->Host     = "localhost";
             
            $mail->Username = "sifre@depodakaldi.com";
            $mail->Password = "depoda04";
            $mail->Mailer   = "smtp";
            $mail->From     = "sifre@depodakaldi.com";
            $mail->FromName = "Depoda Kaldı";
            $mail->Port=25;
            $mail->Subject    ="DepodaKaldı Aktivasyon";
            $mail->IsHTML(true);
              $msg = "Hesabınızı aktive etmek için aşağıdaki linke tıklayınız <br />". anchor('main/activate/'.$activation_code,'Aktive Et!');
            $mail->Body        = $msg;
            
            $mail->AddAddress($email,"Hesabınızı aktive edin");
            
    	
    	
    	if($mail->Send())
        {
    	
                 	$this->session->set_flashdata('infomsg','Üyeliğinizin aktif olabilmesi için size gönderilen e-postayı açınız.');
                    // Set Flashdata to update user
                    $this->session->set_flashdata('successmsg','Üyelik Kaydınız başarıyla oluşturulmuştur.');
                    redirect('main/message');
        }
        else 
        {
                    $this->session->set_flashdata('errormsg','Kayıt işleminiz gerçekleştirilemedi.');
                       
                        redirect('main/message');
        }

                
                    
                 
                            
            }
            else
            {
               $this->session->set_flashdata('errormsg','Kayıt işleminiz gerçekleştirilemedi.');
                       
                        redirect('main/message');
            }
            
        }
       
        
       // echo $this->user_model->register_user();

    } 
    public function check_email($email)
    {
        if($this->user_model->is_email_exist($email))
        {
            $this->form_validation->set_message('check_email', 'Bu Email adresi başkası tarafından kullanılmaktadır.');
            return false;
        }
        else
        {
            return true;
        }
        
    }
    public function check_username($username)
    {
        if($this->user_model->is_username_exist($username))
        {
            $this->form_validation->set_message('check_username', 'Bu Rumuz başkası tarafından kullanılmaktadır.');
            return false;
        }
        else
        {
            return true;
        }
        
    }       
    public function message()
    {
        $this->load->view('partials/conts/message');
    } 
    public function activate($act_code)
    {
        if($this->user_model->is_activate_code_match($act_code))
        {
            if($this->user_model->is_activate_code_match($act_code)->row(0)->status === "0")
            {
               // Kullanıcı aktive edilmemis aktive et 
               if($this->user_model->activate_user($this->user_model->is_activate_code_match($act_code)->row(0)->user_id))
               {
                    // Kullanıcı aktive edildi, kullancıyı bilgilendir
                    $this->session->set_flashdata('successmsg','Üyelik aktif edilmiştir giriş yapabilirsiniz '.anchor('main/login','Giriş yapın'));
                    redirect('main/message');
               }
               else
               {
                    $this->session->set_flashdata('errormsg','Üyelik aktive edilememiştir. Lütfen yetkililere ulaşın ');
                    redirect('main/message');
               }
            }
            else
            {
                // Kullanıcı aktive etmis bilgilendir
                    $this->session->set_flashdata('alertsmsg','Bu hesap zaten aktif durumdadır '.anchor('main/login','Giriş yapın'));
                    redirect('main/message');
            }       
        }
        else
        {
            // Böyle bir aktivasyon kodu sistemimizde kayıtlı deildir kullanıcıyı bilgilendir
                    $this->session->set_flashdata('errormsg','Böyle bir aktivasyon kodu sistemimizde kayıtlı değildir, lütfen yetkilere ulaşın.');
                    redirect('main/message');
        }
    }
    
    public function change_password()
    {
        if(!$this->session->userdata('logged_in'))
        {
            redirect('main/login');
        }
        else
        {
            $data['subview'] = 'user/password';
            $this->load->view('layouts/default',$data);
        }
    }
    
    public function update_profile()
    {
        if(!$this->session->userdata('logged_in'))
        {
            redirect('main/login');
        }
        else
        {
            $data['result'] = $this->user_model->get_user_details($this->session->userdata('user_id'))->result();
           // $data['result'] = $this->session->userdata('user_id');
            $data['subview'] = 'user/update_profile';
            $this->load->view('layouts/default',$data);
        }
    }
    
    public function update_profile_process()
    {
        if(!$this->session->userdata('logged_in'))
        {
            redirect('main/login');
        }
        else
        {
            $username = $this->input->post('username');
            $email = $this->input->post('email');
            $name = $this->input->post('name');
            $surname = $this->input->post('surname');
            
            $data = array('name' => $name, 'email' => $email, 'surname' => $surname, 'username' => $username);
            $where = array('status' => 1 , 'user_id' => $this->session->userdata('user_id'));            
            $this->db->where($where);
            $this->db->update('users', $data);
            
           /*$this->session->set_userdata(array(
                                    'username'  =>  $username
    								));*/
            
            redirect('user/profile');
        }
    }
    
    public function sifre_degisikligi()
{
  
  
            $this->form_validation->set_rules('sifre','Şifreniz','required|xss_clean|callback_sifre_check');
            $this->form_validation->set_rules('yenisifre','Yeni şifre','required|xss_clean|min_length[6]');
            $this->form_validation->set_rules('yenisifreconf','Yeni Şifre Tekrarı','matches[yenisifre]|xss_clean|min_length[6]|required');
            
        /*    echo "<pre>";
            var_dump($this->input->post());
            echo "</pre>";
            die(); */
            
              if ($this->form_validation->run() == FALSE)
            {
              $data['profile_yazisi'] = "şifre değişikliği ";
                    $data['user'] = $this->user_model->get_user_details($this->session->userdata('user_id'))->row(0);
                    
                    $data['subview'] ='user/password';
                    $this->load->view('layouts/default',$data);
            }
            else
            {
                $update_info = array(
                    'password' => sha1($this->input->post('yenisifre'))
                );
                    
                
                if($this->db->update('users',$update_info))
                {
                     $this->session->set_flashdata('successmsg','Değişiklikler başarıyla kaydedildi.');
                     $ref = $this->input->server('HTTP_REFERER', TRUE);
                     redirect($ref, 'location'); 
                }
                else
                {
                     $this->session->set_flashdata('errormsg','Değişiklikler kaydedilemedi.');
                      $ref = $this->input->server('HTTP_REFERER', TRUE);
                     redirect($ref, 'location');
                }
            }  
}
    
    public function sifre_check($str)
    {
       $user_info = $this->user_model->get_user_details($this->session->userdata('user_id'))->row(0);
        if (sha1($str) != $user_info->password)
        {
            $this->form_validation->set_message('sifre_check', 'Şifrenizi yanlış girdiniz+');
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }
    
    public function profile()
    {
        if(!$this->session->userdata('logged_in'))
        {
            redirect('user/login');
        }
        else
        {
              $sql = "select *  from seller,products 
              where products.product_id = seller.product_id and seller.mod = 2 AND seller.user_id = ? and seller.status = 1 order by seller.dateadd DESC LIMIT 1";
              
                $sql2 = "select * from user_favoriler where user_id = ? and status = 1 order by dateadd DESC LIMIT 1";
            
            
            $data['profile_yazisi'] = "hesap detaylarınız ";
            if($this->db->query($sql2,array($this->session->userdata('user_id')))->num_rows() > 0)
            {
                $data['en_son_fav'] =$this->db->query($sql2,array($this->session->userdata('user_id')))->row(0)->favori_id;
            }
            else
            {
                $data['en_son_fav'] = "-";
            } 
              if($this->db->query($sql,$this->session->userdata('user_id'))->num_rows() > 0){
                $data['en_son_talep_urun'] =$this->db->query($sql,$this->session->userdata('user_id'))->row(0);
            }
            $data['user_added_fav_num'] = $this->user_model->num_people_added_this_user_to_favorites($this->session->userdata('user_id'))->row(0)->count;
            $data['user_normal_products_num'] = $this->user_model->get_user_normal_products($this->session->userdata('user_id'))->row(0)->count;
            $data['user_hizli_products_num'] = $this->user_model->get_user_hizli_products($this->session->userdata('user_id'))->row(0)->count;
            $data['talep_urun_num'] = $this->user_model->get_user_taleps($this->session->userdata('user_id'))->row(0)->count;
            $data['subview'] = 'user/profile';
            $this->load->view('layouts/default',$data);
        }
    } 
    public function favorilere_ekle()
    {
       
        if(!$this->session->userdata('logged_in'))
        {
             $this->session->set_flashdata('infomsg2','Favorilere ekleyebilmeniz için '.anchor("main/login","giriş").' yapmanız gerekmektedir.');
             $ref = $this->input->server('HTTP_REFERER', TRUE);
             redirect($ref, 'location'); 
        }
        else
        {
            if($this->db->where(array('user_id'=>$this->session->userdata('user_id'),'favori_id' => $this->input->post('seller_user_id'),'status'=>1))->get('user_favoriler')->num_rows()>0)
            {
                  $this->session->set_flashdata('infomsg','Bu Satıcı zaten sizin favorileriniz arasında yer almaktadır.');
                  $ref = $this->input->server('HTTP_REFERER', TRUE);
                  redirect($ref, 'location');
            }
            else
            {
                if($this->db->where(array('user_id'=>$this->session->userdata('user_id'),'favori_id' => $this->input->post('seller_user_id'),'status'=>0))->get('user_favoriler')->num_rows()>0)
                {
                   if($this->db->where(array('user_id'=>$this->session->userdata('user_id'),'favori_id' => $this->input->post('seller_user_id'),'status'=>0))->update('user_favoriler',array('status'=>1,'dateupd' => date("Y-m-d H:i:s"))))
                   {
                       $this->session->set_flashdata('successmsg','Satıcı favorilerinize başarıyla eklendi.');
                       $ref = $this->input->server('HTTP_REFERER', TRUE);
                       redirect($ref, 'location');
                   }
                   else
                   {
                        $this->session->set_flashdata('errormsg','Favorilere eklerken bir hata oluştu (hata kodu: mC293).');
                        $ref = $this->input->server('HTTP_REFERER', TRUE);
                        redirect($ref, 'location');
                   }
                                        
                                        
                }  
                else
                {
                    if($this->db->insert('user_favoriler',array('user_id'=>$this->session->userdata('user_id'),'favori_id' => $this->input->post('seller_user_id'), 'dateadd' => date("Y-m-d H:i:s") ,'dateupd' => date("Y-m-d H:i:s"))))
                    {
                        $this->session->set_flashdata('successmsg','Satıcı favorilerinize başarıyla eklendi.');
                        $ref = $this->input->server('HTTP_REFERER', TRUE);
                        redirect($ref, 'location'); 
                    }
                    else
                    {   
                        $this->session->set_flashdata('errormsg','Favorilere eklerken bir hata oluştu (hata kodu: mC293).');
                        $ref = $this->input->server('HTTP_REFERER', TRUE);
                        redirect($ref, 'location'); 
                            
                    }                     
                } 
            }
        }
    }
    
    public function countdown($pro_id)
    {
        $data['pro_id'] = $pro_id;
        $this->load->view('partials/conts/countdown',$data);
    }
    public function get_countdown($pro_id)
    {
 /*       $now = date("Y-m-d H:i:s");
        $sql = "select * from seller as s where s.seller_id = ? and s.mod = ? and s.status = ?  ";
        $result = $this->db->query($sql,array($pro_id,1,1))->row(0);
        echo $result->dateadd."<br>";
        echo "p date: ". strtotime($result->dateadd) ."<br>";
        echo "now: ".strtotime($now)."<br>";
        echo    strtotime($now) - strtotime($result->dateadd) ;

        die(); 
       // $time = strtotime($now) - strtotime($result->dateadd) ;*/
      
        echo "126000";
    } 
           
}

/* End of file welcome.php */
/* Location: ./application/controllers/welcome.php */